package com.example.gongj;


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Arrays;

/**
 * @program: gjdemo
 * @description: 文件字节输入流
 * @author: gongj
 * @Description: TODO
 * @create: 2020-08-16 20:33
 **/
public class FileInputStreamDemo {
    public static void main(String[] args)throws Exception{
        //创建FileInputStream对象
        FileInputStream fis = new FileInputStream("IO流//a.txt");
        //使用read()方法读取
        //从此输入流中读取一个数据字节。读取到文件末尾返回-1
        int read = fis.read();
        System.out.println(read);  //49
        int read2 = fis.read();
        System.out.println(read2);//48
        int read3 = fis.read();
        System.out.println(read3);//48
        int read4 = fis.read();
        System.out.println(read4);//-1

        //以上代码是一个重复的工程，进行优化
        //使用while循环，结束条件为：读取到-1时结束

//        int len = 0;  //记录读取到的字节
//        while ( (len = fis.read() ) != -1){
//            System.out.print((char)len);
//        }
        //释放资源
        fis.close();
    }

    public static void main2(String[] args) throws Exception{
        //创建FileInputStream对象
        FileInputStream fis = new FileInputStream("IO流//a.txt");
        byte[] bytes = new byte[1024];
        //使用read()方法读取
        //read(byte[] b)
        // 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
        int len = 0;
        while((len = fis.read(bytes)) != -1){
           System.out.print(new String(bytes,0,len));
        }
        fis.close();
    }

    public static void main1(String[] args) throws Exception{
        //创建FileInputStream对象
        FileInputStream fis = new FileInputStream("IO流//c.txt");
        int len = 0;  //记录读取到的字节
        while ( (len = fis.read() ) != -1){
            System.out.println(len + "===>" + (char)len);
        }
        //释放资源
        fis.close();
        fis.close();
    }
}
